﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;

namespace Sped.Sped
{
    /// <summary>
    /// REGISTRO 0600: CENTRO DE CUSTOS
    /// </summary>
    [ClassInterface(ClassInterfaceType.AutoDual)]
    [ProgId("SpedPisCofins.Reg0600")]
    [ComVisible(true)]
    public class Reg0600 : IBloco
    {
        /// <summary>
        /// Data da inclusão/alteração
        /// </summary>
        public DateTime DT_ALT { get; set; }
        /// <summary>
        /// Código do centro de custos.
        /// </summary>
        public string COD_CCUS { get; set; }
        /// <summary>
        /// Nome do centro de custos
        /// </summary>
        public string CCUS { get; set; }

        public override bool ValidaRegistro(ref string Erro)
        {
            var ValidacaoOK = true;
            Erro = "";

            if (string.IsNullOrEmpty(this.COD_CCUS))
            {
                this.COD_CCUS = string.Empty;
                Erro += "\r\n* Registro 0600 - Código do centro de custos não informado.";
                ValidacaoOK = false;
            }

            if (string.IsNullOrEmpty(this.CCUS))
            {
                this.CCUS = string.Empty;
                Erro += "\r\n* Registro 0600 - Nome do centro de custos não informado.";
                ValidacaoOK = false;
            }

            return ValidacaoOK;            
        }

        public override string Layout()
        {
            var Linha = string.Empty;

            Linha += "0600" + this.Delimitador;
            Linha += this.DT_ALT.FormatoDataSped() + this.Delimitador;
            Linha += this.COD_CCUS.Trim().removeFormatacao() + this.Delimitador;
            Linha += this.CCUS.Trim().TirarAcento() + this.Delimitador;

            return Linha.Trim();            
        }
    }
}
